Skip to content
This repository has been archived by the owner on Sep 1, 2020. It is now read-only.

Latest commit

 

History

History
23 lines (18 loc) · 797 Bytes

2.1.13 - Server->defer.md

File metadata and controls

23 lines (18 loc) · 797 Bytes

Server->defer

延后执行一个PHP函数。底层会在EventLoop循环完成后执行此函数。此函数的目的是为了让一些PHP代码延后执行,程序优先处理IO事件。底层不保证defer的函数会立即执行,如果是系统关键逻辑,需要尽快执行,请使用after定时器实现。

function Server->defer(callable $callback);
  • defer函数的别名是swoole_event_defer
  • $callback为可执行的函数变量,可以是字符串、数组、匿名函数
  • onWorkerStart回调中执行defer时,必须要等到有事件发生才会回调

defer函数在1.8.0或更高版本可用

使用实例

function query($server, $db) {
    $server->defer(function() use ($db) {
        $db->close();
    });
}